// 该文件专门用于创建整个应用的路由器
import VueRouter from 'vue-router'
//引入组件
import About from '../pages/About'
import Home from '../pages/Home'
import News from '../pages/News'
import Message from '../pages/Message'
import Detail from '../pages/Detail.vue'

//创建并暴露一个路由器
const router = new VueRouter({
    mode: 'history',
    routes: [{
            name: 'guanyu',
            path: '/about',
            component: About,
            meta: {
                title: '关于'
            }
        },
        {
            name: 'zhuye',
            path: '/home',
            component: Home,
            meta: {
                title: '主页'
            },
            children: [{
                name: 'xinwen',
                path: 'news',
                component: News,
                meta: { //路由元信息
                    isAuth: true, ////判断是否需要鉴权，
                    title: '新闻'
                },
                // //独享守卫
                // beforeEnter: (to, from, next) => {
                //     // ...
                //     if (to.meta.isAuth) { //判断是否需要鉴权
                //         if (localStorage.getItem('schoolToken') === 'atguigu') {
                //             next()
                //         } else {
                //             return alert('无权限查看')
                //         }
                //     } else {
                //         next()
                //     }
                // }
            }, {
                name: 'xiaoxi',
                path: 'message',
                component: Message,
                meta: { //判断是否需要鉴权
                    isAuth: true,
                    title: '消息'
                },
                children: [{
                    name: 'xiangqing',
                    path: 'detail',
                    component: Detail,
                    meta: { //判断是否需要鉴权
                        isAuth: true,
                        title: '详情'
                    },
                    // //第一种写法：props值为对象，该对象中所有的key-value的组合最终都会通过props传给Detail组件
                    // props: {
                    //     a: 1,
                    //     b: 'hello'
                    // }

                    // //第二种写法：props值为布尔值，布尔值为true，则把路由收到的所有params参数通过props传给Detail组件
                    // props: true

                    //第三种写法：props值为函数，该函数返回的对象中每一组key-value都会通过props传给Detail组件
                    props(route) {
                        return {
                            id: route.query.id,
                            title: route.query.title
                        }
                    }
                }]
            }]
        }
    ]
})

// //全局前置路由守卫:初始化时执行、每次路由切换前执行
// router.beforeEach((to, from, next) => {
//     // console.log(to, from);
//     // next()
//     if (to.meta.isAuth) { //判断是否需要鉴权
//         if (localStorage.getItem('schoolToken') === 'atguigu') {
//             next()
//         } else {
//             return alert('无权限查看')
//         }
//     } else {
//         next()
//     }
// })

// //全局后置路由守卫：初始化时执行、每次路由切换后执行
// router.afterEach((to, from) => {
//     // console.log(to, from);
//     // document.title = to.meta.title || '硅谷系统'
//     if (to.meta.title) {
//         document.title = to.meta.title
//     }
//     // document.title = '硅谷系统'

// })

export default router